package test;

public class SparseArraytest {
//稀疏数组

    int[][]sparseArray;
    int size=1;

    public SparseArraytest(int[][]array){
        //遍历获取二维数组有效数据个数 初始化对应的稀疏数组
        for(int []i :array){
            for(int j:i){
                if(j!=0){size++;}
            }
        }

        this.sparseArray=new int[size][3];
        //稀疏数组第一行赋值 一维最大下标，二维最大下标，有效元素个数
        if(this.sparseArray[0][0]==0&&this.sparseArray[0][1]==0&&this.sparseArray[0][2]==0){
            this.sparseArray[0][0]=array.length;
            this.sparseArray[0][1]=array[0].length;
            this.sparseArray[0][2]=size;
        }
        //遍历二维数组为稀疏数组赋值
        int indext=1;
        for(int i=0;i<array.length;i++){
            for(int j=0;j<array[i].length;j++){
                if(array[i][j]!=0){
                    sparseArray[indext][0]=i;
                    sparseArray[indext][1]=j;
                    sparseArray[indext][2]=array[i][j];
                    indext++;
                }
            }
        }

    }
    public int[][] get(){
        return this.sparseArray;
    }
}
